Small, handheld computing devices have been steadily growing in popularity in recent years. The devices are known by different names, such as palmtops, pocket computers, personal digital assistants, personal organizers, H/PCs, or the like. These devices, hereinafter “small computer devices,” provide much of the same functionality as their larger counterparts. In particular, the small computer devices provide users the ability to perform word processing, task management, spreadsheet processing, address book functions and email functions, as well as many other functions. Additionally, small computer device users frequently connect to, and communicate over, the Internet from various remote locations.
The Internet is a distributed, worldwide computer network comprising computers belonging to various entities such as corporations, institutes of learning, and research organizations. The “worldwide web” or “web” is a specific Internet network using a specific Internet protocol, i.e., Hyper Text Transfer Protocol (HTTP). Servers that use the web are known as web servers and typically provide many separate electronic files, displays or documents, known as web pages, that are accessible to other web servers or web clients. These web pages are identified by a uniform locator (URL), which is a type of address that allows a user to request the item.
For communication over the Internet, operating systems in the small computer devices typically include browsers or browser functionality. Browsers provide many functions including a graphical user interface that allows the user to both enter a request for a web page and view the response once the web page is received from the web server. Additionally, the browser provides the ability to process an incoming web page, typically in HTML format into a displayable form so that the page can be displayed on the computer. The process of requesting web pages using a browser is generally referred to as either navigating or browsing the web since it is relatively simple to jump from one web server to the another using the Internet's HTTP protocol.
Although extremely functional, small computer devices unfortunately suffer certain drawbacks as compared with larger, desktop computers. One such drawback relates to the slower modem speeds for Internet access and slower processors for processing web pages. Therefore, browsing the web typically involves long periods of time between requesting a web page and being able to view the web page. Moreover, while the browser is requesting, receiving and processing the next page, a blank screen or white space is displayed to the user. Given the long time between web pages users are continually frustrated.
To lessen the time between requesting a page and viewing the requested page, some browsers utilize progressive rendering, which allows for the display of portions of the web page as they are processed. For example, if the text for a page has been processed but the figures or graphics have not, a progressive rendering browser may display the text while the remaining portions are still being processed. Although progressive rendering reduces the wait period for some information it does not eliminate the entire waiting period since the graphics must still be processed.
Larger computer browsers partially solve this “white space” problem by allowing users the option of opening a newly requested or subsequent web page in a different window. This feature allows the user to continue to view the current web page while the next web page is being downloaded, processed and displayed, in another window. Once the display is processed in the other window, the user switches active windows to the next web page. The solution only partially solves the problem since the user does not know when the second window is done processing the second page and the user must switch to the second window which requires window manipulation. Moreover, the small computer devices only provide a single window interface. Therefore, when using the smaller computers, the browser must display the new web page in the window used to display the last web page and thus the option of opening the next web page in a new window is simply not available.
A previous solution to this problem relates to pre-fetching web pages. In general, pre-fetching is a process whereby the browser guesses which web page will be requested next by the user. For example, if the user opens a web page having five links on the page, the browser guesses that the user will request one of the five links, such as the first link. In this scenario, the browser begins requesting the web page associated with the first link. The browser may fetch and store the entire web page in cache, purely on the notion that the user might select that link. If the user selects the link, then the page can be displayed relatively quickly. However, due to the guesswork involved, the process is not a satisfactory solution, as much of the pre-fetched information is not displayed. Moreover, since many cell phone companies charge by the byte, i.e., charge the user by the amount of information requested and downloaded to the computer, pre-fetching is inappropriate since much of the information paid for is never viewed.
Another drawback associated with some known browsers is that once a request for a web page is made, the user has no control over the current display. Often, a user makes a request but the display doesn't go blank for a short period of time. During this time, the user may become interested in the current display such that when the next page is finally displayed, it amounts to a significant interruption to the user.
It is with respect to these considerations and others that the present invention has been made.